//
//  NSDate+Extension.swift
//  Weibo30LLG
//
//  Created by 李龙 on 16/8/14.
//  Copyright © 2016年 lilong. All rights reserved.
//

import UIKit

extension NSDate {

    //类方法创建date
    class func creatDateFromString(creatDateStr: String) -> NSDate {
        let dt = NSDateFormatter()
        
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        let creatDate = dt.dateFromString(creatDateStr)!
        
        return creatDate
    }
    
    var dateStr: String? {
        
        let dt = NSDateFormatter()
        
        //指定格式化方法
        dt.dateFormat = "yyyy"
        //指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        //今年
        if isThisYear(self) {
            //日历
            let calendar = NSCalendar.currentCalendar()
            
            //今天
            if calendar.isDateInToday(self) {
                
                //距离现在差多少秒
                let timeInterval = abs(self.timeIntervalSinceNow)
                //一分钟之内
                if timeInterval < 60 {
                    
                    return "刚刚"
                } else if timeInterval < 3600 {
                    
                    let result = timeInterval / 60
                    
                    return "\(Int(result))分钟之前"
                } else {
                    
                    let result = timeInterval / 3600
                    
                    return "\(Int(result))小时之前"
                    
                }
                
                
            } else if calendar.isDateInYesterday(self) {
                //昨天
                dt.dateFormat = "昨天 HH:mm"
                
            } else {
                //其他
                dt.dateFormat = "MM-dd HH:mm"
            }
            
            
        } else {
            
            //不是今年的格式
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        
        return dt.stringFromDate(self)
        
    }
    
    //判断是否是今年
    private func isThisYear(creatDate: NSDate) -> Bool {
        
        let dt = NSDateFormatter()
        
        //指定格式化方法
        dt.dateFormat = "yyyy"
        //指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        //获取发微博时间年份
        let creatDateYear = dt.stringFromDate(creatDate)
        //获取当前年份
        let currentDateYear = dt.stringFromDate(NSDate())
        //对比年份是否相同
        return creatDateYear == currentDateYear
    }
    
    
    
}
